자바 ORM 표준 JPA 프로그래밍 객체지향 쿼리 언어 2 - 중급 문법 2 JPQL과 SQL을 비교해보면 JPQL에서 where m = :member로 엔티티를 직접 사용하는 부분이 SQL에서 where m.id=?로 기본 키 값을 사용하도록 변환된 것을 확인할 수 있다. 엔티티 대신 아래 예제와 같이 식별자 값을 직접 사용할 수 있다. 정적 쿼리 : 미리 정의한 쿼리에 이름을 부여해서 필요할 때 사용할 수 있는데 이것을 Named 쿼리라 한다. Named 쿼리는 ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 17. 다양한 연관관계 매핑(3) 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다. 그래서 보통 다대다 관계를 일대다, 다대일 관계로 풀어내는 연결 테이블을 사용한다. 따라서 회원 테이블과 상품 테이블만으로는 이 관계를 표현할 수 없다. 이 그림을 보면 Member_Product 연결 테이블을 추가했다. 이 테이블을 사용해서 다대다 관계를 일대다, 다대일 관계로 풀어낼 수 있다. 이 연결 테이블은 ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 5. 영속성 관리(1) 엔티티 매니저는 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 정확히 이야기하면 persist() 메소드는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다. 그리고 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다. 엔티티 매니저를 통해서 엔티티를 영속성 컨텍스트에 저장했다. 이렇게 영속... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 10. 연관관계 매핑 기초(1) 예를 들어 회원과 팀이 관계가 있을 때 회원 -> 팀 또는 팀 -> 회원 둘 중 한쪽만 참조하는 것을 단방향 관계라 하고, 회원 -> 팀, 팀 -> 회원 양쪽 모두 서로 참조하는 것을 양방향 관계라 한다. 연관관계 중에선 다대일(N:1) 단방향 관계를 가장 먼저 이해해야 한다. 회원 객체는 Member.team 필드(멤버변수)로 팀 객체와 연관관계를 맺는다. 회원 테이블은 TEAM_ID 외래... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 3. JPA 시작(1) H2 데이터베이스를 서버 모드로 실행한 후에 웹 브라우저에서 입력하면 H2 데이터베이스에 접속할 수 있는 아래 그림과 같은 화면이 나온다. 아래 예제의 SQL을 입력하고 실행 버튼을 선택하면 아래 위의 그림처럼 왼쪽 메뉴에서 생성된 MEMBER 테이블을 볼 수 있다. hibernate-entitymanager : 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리 hib... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 11. 연관관계 매핑 기초(2) 연관관계를 등록, 수정, 삭제, 조회하는 예제를 통해 연관관계를 어떻게 사용하는지 알아보자. 연관관계를 매핑한 엔티티를 어떻게 저장하는지 아래 예제로 알아보자. JPA에서 엔티티를 저장할 때 연관된 모든 엔티티는 영속 상태여야 한다. 회원 엔티티는 팀 엔티티를 참조하고 저장했다. JPA는 참조한 팀의 식별자(Team.id)를 외래 키로 사용해서 적절한 등록 쿼리를 생성한다. 이때 실행된 SQ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 43. 객체지향 쿼리 언어(10) Criteria를 사용하면 문자가 아닌 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 문자 기반의 JPQL보다 동적 쿼리를 안전하게 생성할 수 있는 장점이 있다. 1) Criteria 쿼리를 생성하려면 먼저 Criteria 빌더(CriteriaBuilder)를 얻어야 한다. Criteria 빌더는 EntityManager나 EntityMangerFactor에서 얻을 ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍
객체지향 쿼리 언어 2 - 중급 문법 2 JPQL과 SQL을 비교해보면 JPQL에서 where m = :member로 엔티티를 직접 사용하는 부분이 SQL에서 where m.id=?로 기본 키 값을 사용하도록 변환된 것을 확인할 수 있다. 엔티티 대신 아래 예제와 같이 식별자 값을 직접 사용할 수 있다. 정적 쿼리 : 미리 정의한 쿼리에 이름을 부여해서 필요할 때 사용할 수 있는데 이것을 Named 쿼리라 한다. Named 쿼리는 ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 17. 다양한 연관관계 매핑(3) 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다. 그래서 보통 다대다 관계를 일대다, 다대일 관계로 풀어내는 연결 테이블을 사용한다. 따라서 회원 테이블과 상품 테이블만으로는 이 관계를 표현할 수 없다. 이 그림을 보면 Member_Product 연결 테이블을 추가했다. 이 테이블을 사용해서 다대다 관계를 일대다, 다대일 관계로 풀어낼 수 있다. 이 연결 테이블은 ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 5. 영속성 관리(1) 엔티티 매니저는 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 정확히 이야기하면 persist() 메소드는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다. 그리고 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다. 엔티티 매니저를 통해서 엔티티를 영속성 컨텍스트에 저장했다. 이렇게 영속... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 10. 연관관계 매핑 기초(1) 예를 들어 회원과 팀이 관계가 있을 때 회원 -> 팀 또는 팀 -> 회원 둘 중 한쪽만 참조하는 것을 단방향 관계라 하고, 회원 -> 팀, 팀 -> 회원 양쪽 모두 서로 참조하는 것을 양방향 관계라 한다. 연관관계 중에선 다대일(N:1) 단방향 관계를 가장 먼저 이해해야 한다. 회원 객체는 Member.team 필드(멤버변수)로 팀 객체와 연관관계를 맺는다. 회원 테이블은 TEAM_ID 외래... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 3. JPA 시작(1) H2 데이터베이스를 서버 모드로 실행한 후에 웹 브라우저에서 입력하면 H2 데이터베이스에 접속할 수 있는 아래 그림과 같은 화면이 나온다. 아래 예제의 SQL을 입력하고 실행 버튼을 선택하면 아래 위의 그림처럼 왼쪽 메뉴에서 생성된 MEMBER 테이블을 볼 수 있다. hibernate-entitymanager : 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리 hib... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 11. 연관관계 매핑 기초(2) 연관관계를 등록, 수정, 삭제, 조회하는 예제를 통해 연관관계를 어떻게 사용하는지 알아보자. 연관관계를 매핑한 엔티티를 어떻게 저장하는지 아래 예제로 알아보자. JPA에서 엔티티를 저장할 때 연관된 모든 엔티티는 영속 상태여야 한다. 회원 엔티티는 팀 엔티티를 참조하고 저장했다. JPA는 참조한 팀의 식별자(Team.id)를 외래 키로 사용해서 적절한 등록 쿼리를 생성한다. 이때 실행된 SQ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍 43. 객체지향 쿼리 언어(10) Criteria를 사용하면 문자가 아닌 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 문자 기반의 JPQL보다 동적 쿼리를 안전하게 생성할 수 있는 장점이 있다. 1) Criteria 쿼리를 생성하려면 먼저 Criteria 빌더(CriteriaBuilder)를 얻어야 한다. Criteria 빌더는 EntityManager나 EntityMangerFactor에서 얻을 ... 자바 ORM 표준 JPA 프로그래밍자바 ORM 표준 JPA 프로그래밍